10265
24845
Jag är bara en nybörjare i Swift-kodning. Min idé är ganska enkel vilket är en app med två knappar. När du klickar på kommer ett textfält att ändra texten.
I Main.StoryBoard lägger jag till ett textfält och två knappar.
I ViewController.swift-filen. Jag skriver så här:
importera UIKit
klass ViewController: UIViewController {
@IBOutlet svag var textfält: UITextField!
@IBOutlet svag var-knapp: UIButton!
@IBOutlet svag var knapp2: UIButton!
@IBAction func action1 (_ avsändare: UIButton) {
textfield.text = "du klickade precis på button1"
}
@IBAction func action2 (_ avsändare: UIButton) {
textfield.text = "du klickade precis på button2"
}
}
Det ska vara okej. Ett fel visas dock som visar:
tråd1: signal SIGABRT
i filen AppDelegate.swift-rad:
klass AppDelegate: UIResponder, UIApplicationDelegate
Vad är fel med min kod? 
För att lösa problemet, rengör först projektet och bygg sedan om.
För att rengöra projektet, gå till MenuBar: Produkt -> Rengör
Klicka sedan på Run-knappen som vanligt för att bygga om projektet.
|
Du får ett SIGABRT-fel när du har ett urkopplat uttag. Klicka på din visningskontroll i storyboard och gå till anslutningar i sidopanelen (pilsymbolen). Se om du har ett extra uttag där, en kopia eller en extra som inte är ansluten. Om det inte är det kanske du inte har anslutit dina uttag till din kod korrekt.
Kom bara ihåg att SIGABRT händer när du försöker ringa ett uttag (knapp, vy, textfält, etc) som inte finns där.
|
För mig var det inte ett utlopp. Jag löste problemet genom att gå till felet och läsa vad det stod. (Också Noob ..)
Detta var felet:
Och lösningen var här:
Rulla bara uppåt i utgången så kommer felet att avslöjas.
|
En vanlig orsak till denna typ av fel är att du kanske har ändrat namnet på din IBOutlet eller IBAction. Du kan helt enkelt kontrollera detta genom att gå till källkoden.
Klicka på main.storyboard och välj sedan öppna som
och välj sedan källkod
källkoden öppnas
och kontrollera sedan om det finns namnet på iboutlet eller ibaction som du har ändrat, om det finns, välj sedan delen och ta bort den och skapa sedan iboutlet eller ibaction.
Detta bör lösa ditt problem
|
I mitt fall fick jag inte fel bara kraschen i AppDelegate och jag var tvungen att avmarkera nästa alternativ: OS_ACTIVITY_MODE då kunde jag få den verkliga kraschskälen i min .xib-fil
Hoppas att det här kan hjälpa dig också :)
|
Jag hade samma problem. Jag skapade en knapp i storyboard och kopplade den till ViewController och raderade sedan senare knappen. Så anslutningen var fortfarande kvar, men knappen var inte, och så fick jag samma fel som du.
Att fixa:
Gå till anslutningsinspektören (pilen i det övre högra hörnet, i din storyboard) och ta bort alla oanvända anslutningar.
|
Om du stöter på detta i Xcode 10 måste du rengöra innan du bygger. Eller byt till det äldre byggsystemet. File -> Workspace Settings ... -> Build System: Legacy Build System.
|
I mitt fall fanns det ingen logg alls.
Mitt misstag var att skjuta en visningskontroll i en navigationsstack som redan var en del av navigationsstacken.
|
Ibland händer det också när funktionen bara behöver köras i huvudtråden, så du kan fixa den genom att tilldela den till huvudtråden enligt följande: -
DispatchQueue.main.async {
din kod här
}
|
För mig beror detta fel på att jag hade ett förberedelsesteg som inte var tillämpligt på det segment som gjordes.
lång historia:
åsidosätta funk förbereda (för segue: UIStoryboardSegue, avsändare: Alla?) {
låt gosetup = segue.destination as! Uppdatering
gosetup.wherefrom = uppdateringsring
}
Detta gjordes för alla segment när det bara var för en. Så jag skapade en boolean och placerade gosetupen i den.
|
Detta är ett mycket vanligt fel och kan hända av flera skäl. Det vanligaste är när en IBOUTLET / IBACTION ansluten till en visningsstyrenhet i storyboard raderas från den snabba filen men inte från storyboard. Om detta inte är fallet använder du loggen i det nedre verktygsfältet för att ta reda på vad felet är och diagnostisera det. Du kan använda brytpunkter och felsökning för att hjälpa dig att hitta felet.
För att ta reda på hur du åtgärdar felet, använd den här artikeln som jag hittade på Google: https://rayaans.com/fixing-the-notorious-sigabrt-error-in-xcode
|
I mitt fall använde jag RxSwift för att utföra sökning.
Jag hade i stor utsträckning fortsatt att använda en delad instans av en viss klass inuti onNext-metoden, vilket förmodligen gjorde den otillgänglig (Mutex).
Se till att sådana fall endast hanteras försiktigt när det är absolut nödvändigt.
I mitt fall använde jag ett antal variabler i förväg för att säkert (och i följd) lagra returvärdena för den delade instansens metoder och återanvända dem i onNext-blocket.
|
Jag hade samma problem. I mitt fall har jag bara skrivit över filen
GoogleService-Info.plist
på den vägen:
Plattform \ ios \ YOUR_APP_NAME \ Resurser \ Resurser
I mitt fall var filerna närvarande utan data.
|
Mycket aktiv fråga. Tjäna 10 rykte för att svara på den här frågan. Kravet på rykte hjälper till att skydda denna fråga från skräppost och icke-svar-aktivitet.
Inte svaret du letar efter? Bläddra bland andra frågor taggade ios snabbt eller ställ din egen fråga.